/*
 * Launcher.hpp
 *
 *  Created on: 29.03.2011
 *      Author: niea
 */

#ifndef LAUNCHER_HPP_
#define LAUNCHER_HPP_

#include "common/log.hpp"
#include "udp/UDPPinger.hpp"
#include "udp/UDPListener.hpp"
#include "tcp/TCPMessenger.h"
#include "tcp/TCPListener.h"
#include "file-server/FileServer.hpp"
#include "file-client/FileClient.hpp"
#include "file-client/FileClientPlug.hpp"
#include "file-server/FileServerPlug.hpp"
#include "folder-manager/FolderManager.hpp"

#include "folder-manager/FolderManagerI.hpp"
#include "folder-manager/FolderManagerPlug.hpp"

namespace efs
{

class Launcher
{
public:
	Launcher(Settings const& settings);
	virtual ~Launcher();

	void start();
	void stop();
private:
	UDPPinger m_udp_pinger;
	UDPListener m_udp_listener;
	TCPListener m_tcp_listener;
	TCPMessenger m_tcp_messenger;
	//FileServerPlug m_file_server;
	//FileClientPlug m_file_client;
	FileServer m_file_server;
	FileClient m_file_client ;
	//FolderManagerPlug m_folder_manager;
	FolderManager m_folder_manager;

	ClientEntryList m_client_list;
};

}

#endif /* LAUNCHER_HPP_ */
